package com.neusoft.tijian.controller;

import com.neusoft.tijian.dto.OrdersQueryDto;
import com.neusoft.tijian.config.PageResult;
import com.neusoft.tijian.po.Orders;
import com.neusoft.tijian.service.IOrdersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 订单控制器
 * 处理订单相关的前端请求
 */
@RestController
@RequestMapping("/orders")  // 匹配前端baseURL中的tijiancms上下文
public class OrdersController {

    @Autowired
    private IOrdersService ordersService;

    /**
     * 新增订单（处理前端预约提交）
     * 前端请求路径：/orders/saveOrders
     * 请求方式：POST
     * 请求体：JSON格式的Orders对象（包含userId、orderDate、hpId、smId、state）
     * 返回值：int（1=成功，0=失败）
     */
    @PostMapping("/saveOrders")  // 与前端预约页请求的接口路径完全匹配
    public Integer saveOrders(@RequestBody Orders orders) {
        // 调用Service层方法保存订单（需在IOrdersService和实现类中实现对应逻辑）
        return ordersService.saveOrders(orders);
    }

    /**
     * 分页查询订单
     * 对应前端请求：orders/listOrders
     */
    @PostMapping("/listOrders")  // 与前端请求路径完全匹配
    public PageResult<Orders> listOrders(@RequestBody OrdersQueryDto query) {
        return ordersService.listOrders(query);
    }

    /**
     * 根据ID查询订单
     */
    @PostMapping("/getOrdersById")
    public Orders getOrdersById(@RequestBody Orders orders) {
        return ordersService.getOrdersById(orders.getOrderId());
    }

    /**
     * 更新订单状态
     */
    @PostMapping("/updateOrdersState")
    public Integer updateOrdersState(@RequestBody Orders orders) {
        return ordersService.updateOrdersState(orders.getOrderId(), orders.getState());
    }
}
